/*
 *
 * 名称：二十四节
 * 功能：24小时或24节气的计算功能
 * 作者：清河张
 * 时间：2025.05.11
 *
 */

#ifndef JIE24_H
#define JIE24_H


class JIE24
{
public:
    //全参数构造函数，默认属性配置
    JIE24(int zhoujie = -1, int yu = 0);//周节，余
    void zhoujie(int);//设置周节
    void zhou(int);//设置周
    void jie(int);//设置节
    void yuclear();//清除余
    //运算
    bool operator == (int n) const;
    JIE24 operator + (int n) const;
    JIE24 operator - (int n) const;
    JIE24& operator += (int n);
    JIE24& operator -= (int n);

    int zhoujie() const;//周节组合
    int zhou() const;//周
    int jie() const;//节
    int yu() const;//余

    bool invalid() const;//无效
    bool yinyang() const;//阳仪，前半圈，阳半圈
    bool jiao() const;//交接点，时间0点、节季冬至
    int zhi12() const;//转换成12地支
    int yufen(int) const;//余气划分
    int xiaowei(int) const;//余气剩尾
    int jiejuli(int zhoujie) const;//节距离
    int jiejuliz(int zhoujie = 0, int z = 360) const;//节距离，带周期
    int jiejuliz(int zhou, int jie = 0, int z = 360) const;//节距离，带周期
    void zhoucha(int zx, int& zhou, int& order) const;//周差调整
    void zhouchax(int zx, int& zhou, int& order) const;//周差调整不满
    JIE24 xiangqian(int jie, int yu = 0) const;//向前找
    JIE24 xianghou(int jie, int yu = 0) const;//向后找

private:
    int _zhoujie;//周、节
    int _yu;//余
};



#endif // JIE24_H
